67 research outputs found
Streaming Reduction Circuit
Reduction circuits are used to reduce rows of floating point values to single values. Binary floating point operators often have deep pipelines, which may cause hazards when many consecutive rows have to be reduced. We present an algorithm by which any number of consecutive rows of arbitrary lengths can be reduced by a pipelined commutative and associative binary operator in an efficient manner. The algorithm is simple to implement, has a low latency, produces results in-order, and requires only small buffers. Besides, it uses only a single pipeline for the involved operation. The complexity of the algorithm depends on the depth of the pipeline, not on the length of the input rows. In this paper we discuss an implementation of this algorithm and we prove its correctness
Architecture Specifications in CλaSH
This paper introduces CλaSH, a novel hardware specification environment, by discussing several non-trivial examples. CλaSH is based on the functional language Haskell, and exploits many of its powerful abstraction mechanisms such as higher order functions, polymorphism, lambda abstraction, pattern matching, type derivation. As a result, specifications in CλaSH are concise and semantically clear, and simulations can be directly executed within a Haskell evaluation environment. CλaSH generates synthesizable low-level VHDL code by applying several transformation rules to a functional specification of a digital circuit
Hiding State in CλaSH Hardware Descriptions
Synchronous hardware can be modelled as a mapping from input and state to output and a new state, such mappings are referred to as transition functions. It is natural to use a functional language to implement transition functions. The CaSH compiler is capable of translating transition functions to VHDL. Modelling hardware using multiple components is convenient. Components in CaSH can be considered as instantiations of functions. To avoid packing and unpacking state when composing components, functions are lifted to arrows. By using arrows the chance of making errors will decrease as it is not required to manually (un)pack the state. Furthermore, the Haskell do-syntax for arrows increases the readability of hardware designs. This is demonstrated using a realistic example of a circuit which consists of multiple components
Planning of on/off devices with minimum run-times
To be able to reach objectives such as peak shaving or self-consumption within smart grids, it becomes increasingly important to control smart grid ready devices within households. This paper explores the planning of devices with minimal run-time constraints and constraints on total cumulative production (e.g., buffer level), such as heat pumps and electric vehicles. For such devices, a novel dynamic programming formulation is presented that makes it possible to find the optimal planning in time and space, where is the number of time intervals. To evaluate the algorithm, we integrate it into an existing decentralized demand side management approach. This evaluation shows using simulations that a load curve within a neighborhood can be flattened this way
A survey of offline algorithms for energy minimization under deadline constraints
Modern computers allow software to adjust power management settings like speed and sleep modes to decrease the power consumption, possibly at the price of a decreased performance. The impact of these techniques mainly depends on the schedule of the tasks. In this article, a survey on underlying theoretical results on power management, as well as offline scheduling algorithms that aim at minimizing the energy consumption under real-time constraints, is given
A Class of Convex Quadratic Nonseparable Resource Allocation Problems with Generalized Bound Constraints
We study a convex quadratic nonseparable resource allocation problem that arises in the area of decentralized energy management (DEM), where unbalance in electricity networks has to be minimized. In this problem, the given resource is allocated over a set of activities that is divided into subsets, and a cost is assigned to the overall allocated amount of resources to activities within the same subset. We derive two efficient algorithms with worst-case time complexity to solve this problem. For the special case where all subsets have the same size, one of these algorithms even runs in linear time given the subset size. Both algorithms are inspired by well-studied breakpoint search methods for separable convex resource allocation problems. Numerical evaluations on both real and synthetic data confirm the theoretical efficiency of both algorithms and demonstrate their suitability for integration in DEM systems
On a reduction for a class of resource allocation problems
In the resource allocation problem (RAP), the goal is to divide a given
amount of resource over a set of activities while minimizing the cost of this
allocation and possibly satisfying constraints on allocations to subsets of the
activities. Most solution approaches for the RAP and its extensions allow each
activity to have its own cost function. However, in many applications, often
the structure of the objective function is the same for each activity and the
difference between the cost functions lies in different parameter choices such
as, e.g., the multiplicative factors. In this article, we introduce a new class
of objective functions that captures the majority of the objectives occurring
in studied applications. These objectives are characterized by a shared
structure of the cost function depending on two input parameters. We show that,
given the two input parameters, there exists a solution to the RAP that is
optimal for any choice of the shared structure. As a consequence, this problem
reduces to the quadratic RAP, making available the vast amount of solution
approaches and algorithms for the latter problem. We show the impact of our
reduction result on several applications and, in particular, we improve the
best known worst-case complexity bound of two important problems in vessel
routing and processor scheduling from to
- …